<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

<html><head><title>ACS_Misc - NewAC</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>

<!--  Generated by Natural Docs, version 1.4 -->
<!--  http://www.naturaldocs.org  -->

<!-- saved from url=(0026)http://www.naturaldocs.org -->




<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="ACS_Misc"></a>ACS_Misc</h1><div class=CBody><p>Miscellaneous converter and utility components.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#ACS_Misc" >ACS_Misc</a></td><td class=SDescription>Miscellaneous converter and utility components.</td></tr><tr class="SClass"><td class=SEntry><a href="#TMemoryIn" >TMemoryIn</a></td><td class=SDescription>A descendant of <a href="ACS_Classes-pas.html#TAuInput" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">TAuInput</a> which reads audio data from a memory block that you provide. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TMemoryIn.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TMemoryIn.DataBuffer" >DataBuffer</a></td><td class=SDescription>Use this property to assign a pointer pointing to a data block, audio data will be read from. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TMemoryIn.DataSize" >DataSize</a></td><td class=SDescription>Use this property to set the size of the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">DataBuffer</a> in bytes.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TMemoryIn.InBitsPerSample" >InBitsPerSample</a></td><td class=SDescription>Use this property to tell the component the number of bits per sample for the audio data stored in the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link3 onMouseOver="ShowTip(event, 'tt2', 'link3')" onMouseOut="HideTip('tt2')">DataBuffer</a>.</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TMemoryIn.InChannels" >InChannels</a></td><td class=SDescription>Use this property to tell the component the number of channels for the audio data stored in the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link4 onMouseOver="ShowTip(event, 'tt2', 'link4')" onMouseOut="HideTip('tt2')">DataBuffer</a>.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TMemoryIn.InSampleRate" >InSampleRate</a></td><td class=SDescription>Use this property to tell the component the sample rate of the audio data stored in the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link5 onMouseOver="ShowTip(event, 'tt2', 'link5')" onMouseOut="HideTip('tt2')">DataBuffer</a>.</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TMemoryIn.RepeatCount" >RepeatCount</a></td><td class=SDescription>Use this property to tell the component how many times the contents of the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link6 onMouseOver="ShowTip(event, 'tt2', 'link6')" onMouseOut="HideTip('tt2')">DataBuffer</a> should be replayed before the component reports the end of data. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TMemoryIn.OnBufferDone" >OnBufferDone</a></td><td class=SDescription>This event is raised when the comoponent has played its current buffer contents and is about to report the end of input. </td></tr><tr class="SClass"><td class=SEntry><a href="#TAudioProcessor" >TAudioProcessor</a></td><td class=SDescription>This component allows you to perform your own audio processing without writing  your own converter component. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAudioProcessor.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAudioProcessor.OnFlush" >OnFlush</a></td><td class=SDescription>This event is raised when the audio chain is about to close. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAudioProcessor.OnGetBitsPerSample" >OnGetBitsPerSample</a></td><td class=SDescription>This event is raised when the component for which TAudioProcessor is an input wants to know the number of bits per sample provided by the TAudioProcessor. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAudioProcessor.OnGetData" >OnGetData</a></td><td class=SDescription>This event is raised when the component for which TAudioProcessor is an input wants to get some data from it. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAudioProcessor.OnInit" >OnInit</a></td><td class=SDescription>This event is raised when audio-chain needs to initialize the TAudioProcessor. </td></tr><tr class="SClass"><td class=SEntry><a href="#TAudioPlayList" >TAudioPlayList</a></td><td class=SDescription>A descendant of <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt3', 'link7')" onMouseOut="HideTip('tt3')">TAuConverter</a> which enables input comonents to play series of files without gaps. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAudioPlayList.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAudioPlayList.Files" >Files</a></td><td class=SDescription>The list of files to be played. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAudioPlayList.CurrentItem" >CurrentItem</a></td><td class=SDescription>The index of the play list element currently being played (or the element that will be played when you start playback). </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAudioPlayList.OnPlayItemChanged" >OnPlayItemChanged</a></td><td class=SDescription>This event is triggered when the new item from the playlist starts to play. </td></tr><tr class="SClass"><td class=SEntry><a href="#TCueSplitter" >TCueSplitter</a></td><td class=SDescription>Descends from <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt3', 'link8')" onMouseOut="HideTip('tt3')">TAuConverter</a>. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TCueSplitter.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TCueSplitter.ItemsCount" >ItemsCount</a></td><td class=SDescription>The total number of tracks in the cue-sheet.</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TCueSplitter.CurrentItem" >CurrentItem</a></td><td class=SDescription>The index of the item to be extracted. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TCueSplitter.Album" >Album</a></td><td class=SDescription>Returns the name of the album (The cue-sheet header title)</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TCueSplitter.Performer" >Performer</a></td><td class=SDescription>Returns the name of the current performer</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TCueSplitter.Performer" >Performer</a></td><td class=SDescription>Returns the name of the current composition</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TCueSplitter.Time" >Time</a></td><td class=SDescription>Returns the current composition duration in seconds.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TCueSplitter.Year" >Year</a></td><td class=SDescription>Returns the current composition duration in seconds.</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TCueSplitter.Year" >Year</a></td><td class=SDescription>Returns the current composition duration in seconds.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TCueSplitter.CueFile" >CueFile</a></td><td class=SDescription>The name of the cue-sheet file.</td></tr><tr class="SClass"><td class=SEntry><a href="#TGainAnalysis" >TGainAnalysis</a></td><td class=SDescription>Descends from <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt3', 'link9')" onMouseOut="HideTip('tt3')">TAuConverter</a>. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TGainAnalysis.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TGainAnalysis.NewAlbum" id=link10 onMouseOver="ShowTip(event, 'tt4', 'link10')" onMouseOut="HideTip('tt4')">NewAlbum</a></td><td class=SDescription>Call this method before starting to process a new batch of audio files. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TGainAnalysis.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TGainAnalysis.TitleGain" >TitleGain</a></td><td class=SDescription>Returns the replay gain (in dB) for the last processed file. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TGainAnalysis.AlbumGain" >AlbumGain</a></td><td class=SDescription>Returns the replay gain (in dB) for the batch of files processed since the last call to <a href="#TGainAnalysis.NewAlbum" class=LFunction id=link11 onMouseOver="ShowTip(event, 'tt4', 'link11')" onMouseOut="HideTip('tt4')">NewAlbum</a>.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TGainAnalysis.TitlePeak" >TitlePeak</a></td><td class=SDescription>Returns the peak value for the last processed file in percents of the maximum possible value. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TGainAnalysis.AlbumPeak" >AlbumPeak</a></td><td class=SDescription>Returns the peak value for the batch of files processed since the last call to <a href="#TGainAnalysis.NewAlbum" class=LFunction id=link12 onMouseOver="ShowTip(event, 'tt4', 'link12')" onMouseOut="HideTip('tt4')">NewAlbum</a>.</td></tr><tr class="SClass"><td class=SEntry><a href="#TTagEditor" >TTagEditor</a></td><td class=SDescription>Descends from &lt;TComponent&gt;. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TTagEditor.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Sets the name of the file for editing. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Read or sets the Title tag.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Read or sets the Album tag.</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Read or sets the Artist tag.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Read or sets the Genre tag.</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Read or sets the Year tag.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Read or sets the Track tag.</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Returns the file duration in seconds.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Returns the file bitrate.</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Returns True if the file is valid.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TTagEditor.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TTagEditor.Save" id=link13 onMouseOver="ShowTip(event, 'tt5', 'link13')" onMouseOut="HideTip('tt5')">Save</a></td><td class=SDescription>Saves the edited tags to the file.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TMemoryIn"></a>TMemoryIn</h2><div class=CBody><p>A descendant of <a href="ACS_Classes-pas.html#TAuInput" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt1', 'link19')" onMouseOut="HideTip('tt1')">TAuInput</a> which reads audio data from a memory block that you provide.&nbsp; It is analogous to TStreamIn when reading from TMemoryStream, the only difference is that a pointer to a memory block is used instead of a TMemoryStream object.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TMemoryIn.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TMemoryIn.DataBuffer" >DataBuffer</a></td><td class=SDescription>Use this property to assign a pointer pointing to a data block, audio data will be read from. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TMemoryIn.DataSize" >DataSize</a></td><td class=SDescription>Use this property to set the size of the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link14 onMouseOver="ShowTip(event, 'tt2', 'link14')" onMouseOut="HideTip('tt2')">DataBuffer</a> in bytes.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TMemoryIn.InBitsPerSample" >InBitsPerSample</a></td><td class=SDescription>Use this property to tell the component the number of bits per sample for the audio data stored in the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link15 onMouseOver="ShowTip(event, 'tt2', 'link15')" onMouseOut="HideTip('tt2')">DataBuffer</a>.</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TMemoryIn.InChannels" >InChannels</a></td><td class=SDescription>Use this property to tell the component the number of channels for the audio data stored in the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link16 onMouseOver="ShowTip(event, 'tt2', 'link16')" onMouseOut="HideTip('tt2')">DataBuffer</a>.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TMemoryIn.InSampleRate" >InSampleRate</a></td><td class=SDescription>Use this property to tell the component the sample rate of the audio data stored in the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link17 onMouseOver="ShowTip(event, 'tt2', 'link17')" onMouseOut="HideTip('tt2')">DataBuffer</a>.</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TMemoryIn.RepeatCount" >RepeatCount</a></td><td class=SDescription>Use this property to tell the component how many times the contents of the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link18 onMouseOver="ShowTip(event, 'tt2', 'link18')" onMouseOut="HideTip('tt2')">DataBuffer</a> should be replayed before the component reports the end of data. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TMemoryIn.OnBufferDone" >OnBufferDone</a></td><td class=SDescription>This event is raised when the comoponent has played its current buffer contents and is about to report the end of input. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TMemoryIn.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TMemoryIn.DataBuffer"></a>DataBuffer</h3><div class=CBody><p>Use this property to assign a pointer pointing to a data block, audio data will be read from.&nbsp; The data block IS NOT created by this component.&nbsp; You create it and fill it with data.&nbsp; You must not free the memory block pointed to by DataBuffer until you get an OnDone event from the output component that reads from this input.&nbsp; The memory block pointed to by DataBuffer should be <a href="#TMemoryIn.DataSize" class=LProperty id=link20 onMouseOver="ShowTip(event, 'tt6', 'link20')" onMouseOut="HideTip('tt6')">DataSize</a> in length.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TMemoryIn.DataSize"></a>DataSize</h3><div class=CBody><p>Use this property to set the size of the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link21 onMouseOver="ShowTip(event, 'tt2', 'link21')" onMouseOut="HideTip('tt2')">DataBuffer</a> in bytes.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TMemoryIn.InBitsPerSample"></a>InBitsPerSample</h3><div class=CBody><p>Use this property to tell the component the number of bits per sample for the audio data stored in the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link22 onMouseOver="ShowTip(event, 'tt2', 'link22')" onMouseOut="HideTip('tt2')">DataBuffer</a>.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TMemoryIn.InChannels"></a>InChannels</h3><div class=CBody><p>Use this property to tell the component the number of channels for the audio data stored in the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link23 onMouseOver="ShowTip(event, 'tt2', 'link23')" onMouseOut="HideTip('tt2')">DataBuffer</a>.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TMemoryIn.InSampleRate"></a>InSampleRate</h3><div class=CBody><p>Use this property to tell the component the sample rate of the audio data stored in the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link24 onMouseOver="ShowTip(event, 'tt2', 'link24')" onMouseOut="HideTip('tt2')">DataBuffer</a>.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TMemoryIn.RepeatCount"></a>RepeatCount</h3><div class=CBody><p>Use this property to tell the component how many times the contents of the <a href="#TMemoryIn.DataBuffer" class=LProperty id=link25 onMouseOver="ShowTip(event, 'tt2', 'link25')" onMouseOut="HideTip('tt2')">DataBuffer</a> should be replayed before the component reports the end of data.&nbsp; The default value for this property is 1.&nbsp; If this property is set to -1 the component will replay the buffer endlessly until it is stopped.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TMemoryIn.OnBufferDone"></a>OnBufferDone</h3><div class=CBody><p>This event is raised when the comoponent has played its current buffer contents and is about to report the end of input.&nbsp; Using this property you can renew data buffer so that the component continues playback.&nbsp; The event hander arguments are the pointer to the new buffer, its length and the repeat count.&nbsp; You can assign new values to these arguments or leave the previous ones.&nbsp; If <a href="#TMemoryIn.RepeatCount" class=LProperty id=link26 onMouseOver="ShowTip(event, 'tt7', 'link26')" onMouseOut="HideTip('tt7')">RepeatCount</a> is greater than 1, the OnBufferDone event handler is called only after the contents of the buffer has been repeated <a href="#TMemoryIn.RepeatCount" class=LProperty id=link27 onMouseOver="ShowTip(event, 'tt7', 'link27')" onMouseOut="HideTip('tt7')">RepeatCount</a> number of times.&nbsp; The event handler will never be called if <a href="#TMemoryIn.RepeatCount" class=LProperty id=link28 onMouseOver="ShowTip(event, 'tt7', 'link28')" onMouseOut="HideTip('tt7')">RepeatCount</a> is -1.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAudioProcessor"></a>TAudioProcessor</h2><div class=CBody><p>This component allows you to perform your own audio processing without writing  your own converter component.&nbsp; You put TAudioProcessor exemplar into audio-processing chain just like any other converter, and assign handlers to its events to perform processing.&nbsp; You don&rsquo;t have to assign handler to all events, but only to those that are actually needed.&nbsp; See AudioProcessorDemo for an example of its usage.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAudioProcessor.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAudioProcessor.OnFlush" >OnFlush</a></td><td class=SDescription>This event is raised when the audio chain is about to close. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAudioProcessor.OnGetBitsPerSample" >OnGetBitsPerSample</a></td><td class=SDescription>This event is raised when the component for which TAudioProcessor is an input wants to know the number of bits per sample provided by the TAudioProcessor. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAudioProcessor.OnGetData" >OnGetData</a></td><td class=SDescription>This event is raised when the component for which TAudioProcessor is an input wants to get some data from it. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAudioProcessor.OnInit" >OnInit</a></td><td class=SDescription>This event is raised when audio-chain needs to initialize the TAudioProcessor. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAudioProcessor.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioProcessor.OnFlush"></a>OnFlush</h3><div class=CBody><p>This event is raised when the audio chain is about to close.&nbsp; In this event handler you can free any additional resources you have aloocated in the <a href="#TAudioProcessor.OnInit" class=LProperty id=link29 onMouseOver="ShowTip(event, 'tt8', 'link29')" onMouseOut="HideTip('tt8')">OnInit</a> event handler.&nbsp; The minimal example of this event handler may look like this:</p><blockquote><pre>procedure TForm1.AudioProcessor1Flush(Sender: TComponent);
begin
  TAudioProcessor(Sender).Input.Flush;
end;</pre></blockquote><p>Here we just call the TAudioProcessor&rsquo;s input component&rsquo;s Flush method.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioProcessor.OnGetBitsPerSample"></a>OnGetBitsPerSample</h3><div class=CBody><p>This event is raised when the component for which TAudioProcessor is an input wants to know the number of bits per sample provided by the TAudioProcessor.&nbsp; Possible values are 8, 16, 24, and 32.&nbsp; You should set this event handler only if your TAudioProcessor changes the number of bits per sample regarding its input.&nbsp; For example, if your TAudioProcessor converts all of its input to 32 bps then the handler may look like this:</p><blockquote><pre>procedure TForm1.AudioProcessor1GetBitsPerSample(Sender: TComponent;
  var Param: Cardinal);
begin
  Param := 32;
end;</pre></blockquote></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioProcessor.OnGetData"></a>OnGetData</h3><div class=CBody><p>This event is raised when the component for which TAudioProcessor is an input wants to get some data from it.&nbsp; The Buffer variable is the one where you should place the pointer to the data buffer, and the Bytes variable is the one where you should return the number of bytes in the buffer.&nbsp; When event is called the Bytes variable contains the number of bytes the output component wants from TaudioProcessor.&nbsp; The actual number of bytes returned by this handler (and stored in the Bytes variable) may be smaller (but not larger) than the number requested.&nbsp; Set the Buffer to nil and the Bytes to 0 if you want to indicate that there is no more data.&nbsp; Remember, that after you have set the Buffer to nil and the Bytes to 0 the event handler may be called again, and you should always reutn nil/0 until <a href="#TAudioProcessor.OnFlush" class=LProperty id=link30 onMouseOver="ShowTip(event, 'tt9', 'link30')" onMouseOut="HideTip('tt9')">OnFlush</a> event is called.&nbsp; The minimal OngetDataHandler could look like this:</p><blockquote><pre>procedure TForm1.AudioProcessor1GetData(Sender: TComponent;
   var Buffer: Pointer; var Bytes: Cardinal);
begin
  TAudioProcessor(Sender).Input.GetData(Buffer, Bytes);
end;</pre></blockquote><p>In this example we just read the data from TAudioProcessor&rsquo;s input and pass it along the audio processing chain.&nbsp; In real life you will want to perform some modifications of the obtained data.&nbsp; Note that InputComponent.GetData may set Buffer to nil and Bytes to 0, indicating that the input component has no more data.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioProcessor.OnInit"></a>OnInit</h3><div class=CBody><p>This event is raised when audio-chain needs to initialize the TAudioProcessor.&nbsp; In the event&rsquo;s handler you can perform whatever is necessry to do before the TAudioProcessor can process data.&nbsp; The minimal example of this event handler may look like this:</p><blockquote><pre>procedure TForm1.AudioProcessor1Init(Sender: TComponent; var TotalSize: Int64);
begin
  TAudioProcessor(Sender).Input.Init;
   TotalSize := TAudioProcessor(Sender).Input.Size
end;</pre></blockquote><p>Here we initialize the TAudioProcessor&rsquo;s input component and pass its total data size to the TotalSize parameter.&nbsp; If the TAudioProcessor changes the data size regarding its input (as for example, a resampler or a stereo to mono converter would do) Write the modified value to the TotalSize.&nbsp; If you don&rsquo;t know the TAudioProcessor&rsquo;s total data output size, store -1 in the TotalSize parameter.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAudioPlayList"></a>TAudioPlayList</h2><div class=CBody><p>A descendant of <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt3', 'link31')" onMouseOut="HideTip('tt3')">TAuConverter</a> which enables input comonents to play series of files without gaps.&nbsp; Suppose you want to build a chain that plays several mp3 files from a predefined list.&nbsp; Your chain may look like this:</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>TMP3In</td><td class=CDLDescription>&gt;&gt; TAudioPlayList - &gt;&gt; TDxAudioOut</td></tr></table><p>Now you assign the list of mp3s to be played to TAudioPlayList&rsquo;s <a href="#TAudioPlayList.Files" class=LProperty id=link32 onMouseOver="ShowTip(event, 'tt10', 'link32')" onMouseOut="HideTip('tt10')">Files</a> property and start playback.&nbsp; TAudioPlayList will manage the files that TMP3In will play.&nbsp; There are some limitations with this component however.&nbsp; All the input files should have the same audio data parameters (sample rates, bits per sample, number of channels).&nbsp; No file name is assigned to the input component before you start playback, so you should not enquire about any properties of the file input being playd before you have started the playback.&nbsp; It is ok to check the input file properties from the <a href="#TAudioPlayList.OnPlayItemChanged" class=LProperty id=link33 onMouseOver="ShowTip(event, 'tt11', 'link33')" onMouseOut="HideTip('tt11')">OnPlayItemChanged</a> event handler.&nbsp; TAudioPlayList allows you to construct play lists from the files of the same format.&nbsp; See AudioPlayer demo on how to make play lists of the files of different formats.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAudioPlayList.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAudioPlayList.Files" >Files</a></td><td class=SDescription>The list of files to be played. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAudioPlayList.CurrentItem" >CurrentItem</a></td><td class=SDescription>The index of the play list element currently being played (or the element that will be played when you start playback). </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAudioPlayList.OnPlayItemChanged" >OnPlayItemChanged</a></td><td class=SDescription>This event is triggered when the new item from the playlist starts to play. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAudioPlayList.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioPlayList.Files"></a>Files</h3><div class=CBody><p>The list of files to be played.&nbsp; The list elements should be full file paths.&nbsp; You can edit this list on the fly while performing playback.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioPlayList.CurrentItem"></a>CurrentItem</h3><div class=CBody><p>The index of the play list element currently being played (or the element that will be played when you start playback).&nbsp; The first item in the play list has an index of zero.&nbsp; This value changes when the play list switches to the new element.&nbsp; You can change this value to switch the file being played.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioPlayList.OnPlayItemChanged"></a>OnPlayItemChanged</h3><div class=CBody><p>This event is triggered when the new item from the playlist starts to play.&nbsp; It is safe to get input file properties from this event&rsquo;s handler.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TCueSplitter"></a>TCueSplitter</h2><div class=CBody><p>Descends from <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link34 onMouseOver="ShowTip(event, 'tt3', 'link34')" onMouseOut="HideTip('tt3')">TAuConverter</a>.&nbsp; This class splits long audiotracks containing many compositions into fragments according to the information obtained from a cue-sheet file.&nbsp; The TCueSplitter should be put into audio-processing chain after the input component that reads the audiofile to be split.&nbsp; For example, the audio chain to split a long flac into separate flac-encoded fragments foloowing the cue-sheeit file might look like this:</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>TFLACIn</td><td class=CDLDescription>&gt;&gt; TCueSplitter - &gt;&gt; TFLACOut</td></tr></table><p>This component expects ints input to be a seekable TAuFileIn descending component.&nbsp; Set  the input component&rsquo;s &lt;FileName&gt; property to the name of the multi-composition file described by the cue-sheet.&nbsp; Set TCueSplitter&rsquo;s <a href="#TCueSplitter.CueFile" class=LProperty id=link35 onMouseOver="ShowTip(event, 'tt12', 'link35')" onMouseOut="HideTip('tt12')">CueFile</a> property to the name of the appropriaate cue-sheet file and set the composition to be extracted to the <a href="#TCueSplitter.CurrentItem" class=LProperty id=link36 onMouseOver="ShowTip(event, 'tt13', 'link36')" onMouseOut="HideTip('tt13')">CurrentItem</a> property.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TCueSplitter.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TCueSplitter.ItemsCount" >ItemsCount</a></td><td class=SDescription>The total number of tracks in the cue-sheet.</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TCueSplitter.CurrentItem" >CurrentItem</a></td><td class=SDescription>The index of the item to be extracted. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TCueSplitter.Album" >Album</a></td><td class=SDescription>Returns the name of the album (The cue-sheet header title)</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TCueSplitter.Performer" >Performer</a></td><td class=SDescription>Returns the name of the current performer</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TCueSplitter.Performer" >Performer</a></td><td class=SDescription>Returns the name of the current composition</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TCueSplitter.Time" >Time</a></td><td class=SDescription>Returns the current composition duration in seconds.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TCueSplitter.Year" >Year</a></td><td class=SDescription>Returns the current composition duration in seconds.</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TCueSplitter.Year" >Year</a></td><td class=SDescription>Returns the current composition duration in seconds.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TCueSplitter.CueFile" >CueFile</a></td><td class=SDescription>The name of the cue-sheet file.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TCueSplitter.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TCueSplitter.ItemsCount"></a>ItemsCount</h3><div class=CBody><p>The total number of tracks in the cue-sheet.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TCueSplitter.CurrentItem"></a>CurrentItem</h3><div class=CBody><p>The index of the item to be extracted.&nbsp; The valid values range from 0 to ItemsCount-1.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TCueSplitter.Album"></a>Album</h3><div class=CBody><p>Returns the name of the album (The cue-sheet header title)</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TCueSplitter.Performer"></a>Performer</h3><div class=CBody><p>Returns the name of the current performer</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TCueSplitter.Performer"></a>Performer</h3><div class=CBody><p>Returns the name of the current composition</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TCueSplitter.Time"></a>Time</h3><div class=CBody><p>Returns the current composition duration in seconds.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TCueSplitter.Year"></a>Year</h3><div class=CBody><p>Returns the current composition duration in seconds.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TCueSplitter.Year"></a>Year</h3><div class=CBody><p>Returns the current composition duration in seconds.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TCueSplitter.CueFile"></a>CueFile</h3><div class=CBody><p>The name of the cue-sheet file.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TGainAnalysis"></a>TGainAnalysis</h2><div class=CBody><p>Descends from <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link40 onMouseOver="ShowTip(event, 'tt3', 'link40')" onMouseOut="HideTip('tt3')">TAuConverter</a>.&nbsp; This component calculates its input&rsquo;s replay gain (like in mp3gain utility) and peak values.&nbsp; The component relies on libgain.dll which uses the same code as mp3gain does.&nbsp; This is a converter componen that you can connect to some output component or to TNULLOutput.&nbsp; See the ReplayGain demo on how to use it.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TGainAnalysis.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TGainAnalysis.NewAlbum" id=link37 onMouseOver="ShowTip(event, 'tt4', 'link37')" onMouseOut="HideTip('tt4')">NewAlbum</a></td><td class=SDescription>Call this method before starting to process a new batch of audio files. </td></tr><tr class="SGroup"><td class=SEntry><a href="#TGainAnalysis.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TGainAnalysis.TitleGain" >TitleGain</a></td><td class=SDescription>Returns the replay gain (in dB) for the last processed file. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TGainAnalysis.AlbumGain" >AlbumGain</a></td><td class=SDescription>Returns the replay gain (in dB) for the batch of files processed since the last call to <a href="#TGainAnalysis.NewAlbum" class=LFunction id=link38 onMouseOver="ShowTip(event, 'tt4', 'link38')" onMouseOut="HideTip('tt4')">NewAlbum</a>.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TGainAnalysis.TitlePeak" >TitlePeak</a></td><td class=SDescription>Returns the peak value for the last processed file in percents of the maximum possible value. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TGainAnalysis.AlbumPeak" >AlbumPeak</a></td><td class=SDescription>Returns the peak value for the batch of files processed since the last call to <a href="#TGainAnalysis.NewAlbum" class=LFunction id=link39 onMouseOver="ShowTip(event, 'tt4', 'link39')" onMouseOut="HideTip('tt4')">NewAlbum</a>.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TGainAnalysis.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TGainAnalysis.NewAlbum"></a>NewAlbum</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure NewAlbum</td></tr></table></blockquote><p>Call this method before starting to process a new batch of audio files.&nbsp; You must call this method before performing any other operation on the component.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TGainAnalysis.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TGainAnalysis.TitleGain"></a>TitleGain</h3><div class=CBody><p>Returns the replay gain (in dB) for the last processed file.&nbsp; The best place to analyze this value is the output component&rsquo;s OnDone event handler.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TGainAnalysis.AlbumGain"></a>AlbumGain</h3><div class=CBody><p>Returns the replay gain (in dB) for the batch of files processed since the last call to <a href="#TGainAnalysis.NewAlbum" class=LFunction id=link41 onMouseOver="ShowTip(event, 'tt4', 'link41')" onMouseOut="HideTip('tt4')">NewAlbum</a>.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TGainAnalysis.TitlePeak"></a>TitlePeak</h3><div class=CBody><p>Returns the peak value for the last processed file in percents of the maximum possible value.&nbsp; The best place to analyze this value is the output component&rsquo;s OnDone event handler.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TGainAnalysis.AlbumPeak"></a>AlbumPeak</h3><div class=CBody><p>Returns the peak value for the batch of files processed since the last call to <a href="#TGainAnalysis.NewAlbum" class=LFunction id=link42 onMouseOver="ShowTip(event, 'tt4', 'link42')" onMouseOut="HideTip('tt4')">NewAlbum</a>.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TTagEditor"></a>TTagEditor</h2><div class=CBody><p>Descends from &lt;TComponent&gt;.&nbsp; This component allows you to create, read, and edit tags for a wide variety of audio files.&nbsp; Supported file formts include mp3, ogg, FLAC, a4m, wavpack, wma (reading only).&nbsp; The file type is guessed by its extension.&nbsp; The component requires libtag.dll and libtag_c.dll.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TTagEditor.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Sets the name of the file for editing. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Read or sets the Title tag.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Read or sets the Album tag.</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Read or sets the Artist tag.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Read or sets the Genre tag.</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Read or sets the Year tag.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Read or sets the Track tag.</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Returns the file duration in seconds.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Returns the file bitrate.</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TTagEditor.FileName" >FileName</a></td><td class=SDescription>Returns True if the file is valid.</td></tr><tr class="SGroup"><td class=SEntry><a href="#TTagEditor.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TTagEditor.Save" id=link43 onMouseOver="ShowTip(event, 'tt5', 'link43')" onMouseOut="HideTip('tt5')">Save</a></td><td class=SDescription>Saves the edited tags to the file.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TTagEditor.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TTagEditor.FileName"></a>FileName</h3><div class=CBody><p>Sets the name of the file for editing.&nbsp; The file must exist and have a valid format.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TTagEditor.FileName"></a>FileName</h3><div class=CBody><p>Read or sets the Title tag.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TTagEditor.FileName"></a>FileName</h3><div class=CBody><p>Read or sets the Album tag.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TTagEditor.FileName"></a>FileName</h3><div class=CBody><p>Read or sets the Artist tag.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TTagEditor.FileName"></a>FileName</h3><div class=CBody><p>Read or sets the Genre tag.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TTagEditor.FileName"></a>FileName</h3><div class=CBody><p>Read or sets the Year tag.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TTagEditor.FileName"></a>FileName</h3><div class=CBody><p>Read or sets the Track tag.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TTagEditor.FileName"></a>FileName</h3><div class=CBody><p>Returns the file duration in seconds.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TTagEditor.FileName"></a>FileName</h3><div class=CBody><p>Returns the file bitrate.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TTagEditor.FileName"></a>FileName</h3><div class=CBody><p>Returns True if the file is valid.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TTagEditor.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TTagEditor.Save"></a>Save</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Save</td></tr></table></blockquote><p>Saves the edited tags to the file.</p></div></div></div>

</div><!--Content-->


<div id=Footer>Content &copy; 2008-2010 Andrei Borovsky. Design &copy; 2008 Wayne Thursby. <b><u><a href="http://symmetrica.net/newac">Go to the project's main page</a></u></b>&nbsp; &middot;&nbsp; <a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->


<div id=Menu><div class=MTitle>NewAC<div class=MSubTitle>v2.6.1</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Documentation</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../doc/txt/introduction-txt.html">Quick Introduction to NewAC</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/about_documentation-txt.html">About the Documentation</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/cwguide-txt.html">Component Writer&rsquo;s Guide</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/license-txt.html">License</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/tips_and_tricks-txt.html">Tips &amp; Tricks</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/newac-txt.html">About New Audio Components</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/features-txt.html">NewAC Main Features List</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Main Units</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="ACS_AudioMix-pas.html">ACS_AudioMix</a></div></div><div class=MEntry><div class=MFile><a href="ACS_CDROM-pas.html">ACS_CDROM</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Classes-pas.html">ACS_Classes</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Converters-pas.html">ACS_Converters</a></div></div><div class=MEntry><div class=MFile><a href="ACS_DXAudio-pas.html">ACS_DXAudio</a></div></div><div class=MEntry><div class=MFile><a href="ACS_FLAC-pas.html">ACS_FLAC</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Filters-pas.html">ACS_Filters</a></div></div><div class=MEntry><div class=MFile><a href="ACS_LAME-pas.html">ACS_LAME</a></div></div><div class=MEntry><div class=MFile><a href="ACS_MAC-pas.html">ACS_MAC</a></div></div><div class=MEntry><div class=MFile id=MSelected>ACS_Misc</div></div><div class=MEntry><div class=MFile><a href="ACS_MPC-pas.html">ACS_MPC</a></div></div><div class=MEntry><div class=MFile><a href="ACS_OptimFROG-pas.html">ACS_OptimFROG</a></div></div><div class=MEntry><div class=MFile><a href="ACS_smpeg-pas.html">ACS_SMPEG</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Streams-pas.html">ACS_Streams</a></div></div><div class=MEntry><div class=MFile><a href="ACS_TTA-pas.html">ACS_TTA</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Tags-pas.html">ACS_Tags</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Vorbis-pas.html">ACS_Vorbis</a></div></div><div class=MEntry><div class=MFile><a href="ACS_WavPack-pas.html">ACS_WavPack</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Wave-pas.html">ACS_Wave</a></div></div><div class=MEntry><div class=MFile><a href="ACS_WinMedia-pas.html">ACS_WinMedia</a></div></div><div class=MEntry><div class=MFile><a href="ACS_AAC-pas.html">ACS_AAC</a></div></div><div class=MEntry><div class=MFile><a href="AudioDMO-pas.html">AudioDMO</a></div></div><div class=MEntry><div class=MFile><a href="AudioPass-pas.html">AudioPass</a></div></div><div class=MEntry><div class=MFile><a href="AuSampleRate-pas.html">AuSampleRate</a></div></div><div class=MEntry><div class=MFile><a href="AuASIO-pas.html">AuASIO</a></div></div><div class=MEntry><div class=MFile><a href="AuSynch-pas.html">AuSynch</a></div></div><div class=MEntry><div class=MFile><a href="NewACDTS-pas.html">NewACDTS</a></div></div><div class=MEntry><div class=MFile><a href="NewAC_AVI-pas.html">NewAC_AVI</a></div></div><div class=MEntry><div class=MFile><a href="NewAC_DSP-pas.html">NewAC_DSP</a></div></div><div class=MEntry><div class=MFile><a href="NewACAC3-pas.html">NewACAC3</a></div></div><div class=MEntry><div class=MFile><a href="NewACIndicators-pas.html">NewACIndicators</a></div></div><div class=MEntry><div class=MFile><a href="NewACDSAudio-pas.html">NewACDSAudio</a></div></div><div class=MEntry><div class=MFile><a href="ACS_AAC-pas.html">ACS_AAC</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Utility Units</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="ACS_Misc-pas.html">ACS_Misc</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Procs-pas.html">ACS_Procs</a></div></div><div class=MEntry><div class=MFile><a href="acs_reg-pas.html">ACS_Reg</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Types-pas.html">ACS_Types</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Tutorials</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../demos/Tutorial/AudioProcessor/Main-pas.html">Audio Processor</a></div></div><div class=MEntry><div class=MFile><a href="../demos/Tutorial/ComponentsDemo/ComponentsDemo-pas.html">Components Demo</a></div></div><div class=MEntry><div class=MFile><a href="../demos/Recorders-rippers/Rip'n'listen/Main-pas.html">Rip&rsquo;n&rsquo;Listen Demo</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/Test_ACS_MAC-pas.html">ACS_MAC TestCases</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/Test_ACS_WavPack-pas.html">ACS_WavPack TestCases</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/Test_ACS_FLAC-pas.html">TestFLACEncode</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/uLog-pas.html">uLog.pas</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/uTestBase-pas.html">uTestBase</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/uUtility-pas.html">uUtility</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Properties.html">Properties</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Types.html">Types</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div></div></div></div><script type="text/javascript"><!--
var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Properties">Properties</option><option value="Types">Types</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
HideAllBut([2], 6);// --></script></div><!--Menu-->



<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CClass>The ancestor class for all input components.</div></div><div class=CToolTip id="tt2"><div class=CProperty>Use this property to assign a pointer pointing to a data block, audio data will be read from. </div></div><div class=CToolTip id="tt3"><div class=CClass>Descends from TAuInput, the base class for all converter components. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure NewAlbum</td></tr></table></blockquote>Call this method before starting to process a new batch of audio files. </div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Save</td></tr></table></blockquote>Saves the edited tags to the file.</div></div><div class=CToolTip id="tt6"><div class=CProperty>Use this property to set the size of the DataBuffer in bytes.</div></div><div class=CToolTip id="tt7"><div class=CProperty>Use this property to tell the component how many times the contents of the DataBuffer should be replayed before the component reports the end of data. </div></div><div class=CToolTip id="tt8"><div class=CProperty>This event is raised when audio-chain needs to initialize the TAudioProcessor. </div></div><div class=CToolTip id="tt9"><div class=CProperty>This event is raised when the audio chain is about to close. </div></div><div class=CToolTip id="tt10"><div class=CProperty>The list of files to be played. </div></div><div class=CToolTip id="tt11"><div class=CProperty>This event is triggered when the new item from the playlist starts to play. </div></div><div class=CToolTip id="tt12"><div class=CProperty>The name of the cue-sheet file.</div></div><div class=CToolTip id="tt13"><div class=CProperty>The index of the item to be extracted. </div></div><!--END_ND_TOOLTIPS-->




<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>


<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>